function xq(){
    return new Promise((resolve,reject)=>{

        setTimeout(()=>{
         console.log('相亲成功')
         //reject()
         resolve()  //代表成功
        },1000)
           
    })
  
}
function marry(){
    return new Promise((resolve, reject) => {
        setTimeout(()=>{
        console.log('我要结婚了')
        resolve()
    },2000)
    })
    
    
}
function baby()
{
    setTimeout(()=>{
        console.log('小孩出生')
    },500)
   
}
// 1. 执行xq函数，立即返回一个promise实例对象，但是此时该对象的状态时pending（等待状态）
// 2. .then立即触发，但是then里面的回调函数没有触发
// 3.等待xq函数里面的reslove（）执行完毕，此时实例对象的状态会变更为fulilled（成功状态），此时.then里面的回调函数才触发
xq()
.then(()=>{//then的源码里面也会返回一个promise实例对象，状态默认继承自xq函数返回的对象的状态
   return marry()
})
.then(()=>{//保证第一个then返回的对象状态继承于marry函数返回的对象状态
    baby()
})

// xq().then(()=>
//     {
//         marry().then(()=>{
//           baby()  
//         })
//     }).catch(()=>{
//     console.log('失败了')
// })




//xq().then(()=>{
    //marry()
//})//只有resolve()成功后才可以执行箭头函数下面的内容
//xq().catch(()=>{
    //console.log('失败了')
//})

